<script>
	import auth from './utils/auth.js';
	
	export default {
		globalData: {
			// 用于存储全局分享数据
			shareInfo: {
				shareId: '',
				source: ''
			},
			pendingShareId: ''
		},
		onLaunch: function(options) {
			wx.loadFontFace({
				family: 'Regular',
				global: true,
				source: 'url("https://7072-prod-7gx9za9x1b9e081b-1348556371.tcb.qcloud.la/font/Regular.ttf")',
				success: function (e) {
					console.log(e, '动态加载字体成功')
				},
				fail: function (e) {
					console.log(e, '动态加载字体失败')
				}
			})

			wx.loadFontFace({
				family: 'Light',
				global: true,
				source: 'url("https://7072-prod-7gx9za9x1b9e081b-1348556371.tcb.qcloud.la/font/Light.ttf")',
				success: function (e) {
					console.log(e, '动态加载字体成功')
				},
				fail: function (e) {
					console.log(e, '动态加载字体失败')
				}
			})


			console.log('App Launch');
			// 初始化云开发
			if (!wx.cloud) {
			console.error('请使用 2.2.3 或以上的基础库以使用云能力')
			} else {
			wx.cloud.init({
				// env 参数说明：
				// env 参数决定接下来小程序发起的云开发调用会默认请求到哪个云环境
				env: 'prod-7gx9za9x1b9e081b', // 替换为您的云开发环境ID
				traceUser: true, // 是否将用户访问记录到用户管理中，在控制台可见
			})
			}
			
			// 检查登录状态
			this.checkLoginStatus().catch(err => {
				console.error('启动时登录检查失败:', err);
				// 错误已被记录，不再抛出
			});
			
			// 处理启动参数，检查是否有分享信息
			this.handleShareOptions(options);


		},
		onShow: function(options) {
			console.log('App Show');
			// 处理从后台恢复时的分享参数
		},
		onHide: function() {
			console.log('App Hide');
		},
		methods: {
			// 检查登录状态
			async checkLoginStatus() {
				try {
					// 获取当前页面路径
					const pages = getCurrentPages();
					if (!pages || pages.length === 0) return;
					
					const currentPage = pages[pages.length - 1];
					
					// 如果当前页面已经是登录页，则不再检查
					if (!currentPage || !currentPage.route || currentPage.route === 'pages/user/login') return;
					
					// 检查登录状态
					await auth.checkLogin();
				} catch (error) {
					console.error('检查登录状态时出错:', error);
					// 捕获错误但不再抛出，防止未处理的Promise rejection
				}
			},
			// 处理启动参数，检查是否有分享信息
			handleShareOptions(options) {
				console.log("启动参数",options)
				if (options) {
					// 处理直接分享参数
					if (options.query && options.query.shareId) {
						// 存储shareId，等待页面准备好后使用
						this.globalData.pendingShareId = options.query.shareId;
						
						// 延迟一会再跳转，确保应用已完成初始化
						setTimeout(() => {
							uni.navigateTo({
								url: `/pages/cart/shared-cart?shareId=${options.query.shareId}`
							});
						}, 1000);
					}
					
					// 处理可能的编码URL参数
					if (options.query && options.query.q) {
						try {
							// q参数通常是编码后的完整URL
							const decodedUrl = decodeURIComponent(options.query.q);
							console.log('Decoded URL:', decodedUrl);
							
							// 从URL中提取shareId
							const match = decodedUrl.match(/[?&]shareId=([^&]+)/);
							if (match && match[1]) {
								const extractedShareId = match[1];
								this.globalData.pendingShareId = extractedShareId;
								
								setTimeout(() => {
									uni.navigateTo({
										url: `/pages/cart/shared-cart?shareId=${extractedShareId}`
									});
								}, 1000);
							}
						} catch (e) {
							console.error('解析分享链接失败', e);
						}
					}
				}
				
			}
		}
	}
</script>

<style>
	/*每个页面公共css */
@import "@/static/styles/font/Regular.css";
@import "@/static/styles/font/Light.css";

</style>
